<?php

/***********************************************/
/*CONTENIDO*/
/***********************************************/
echo" <div class=\"pag_content\">
 	<div class=\"pag_content_title\">
		<div class=\"pag_title_cap\">Cap&iacute;tulo 11: </div>
		<div class=\"pag_title_cont\">Gesti&oacute;n de recursos</div>
    </div>
    <div class=\"pag_content_body\">         
	<div class=\"contenido_principal\">	
		<br />";
		
/***********************************************/
/*TITULO PARTE*/
/***********************************************/

echo"	<div class=\"parrafo_titulo\">
	Grupos de Usuarios
	</div>";		

	
/***********************************************/
/*CONTENIDO*/
/***********************************************/

echo"
<div class=\"parrafo\" align=\"justify\">
La definici&oacute;n de grupos de usuarios es el siguiente paso en la extrategia de DRM. Esto consiste en clasificar a los usuarios dentro de un grupo segun sus necesidades.
</div>
<div class=\"parrafo\" align=\"justify\">
Un mismo usuario se puede asignar a mas de un grupo, pero cada sesion activa de ese usuario unicamente puede pertenecer a un grupo.
</div>
<h3>
1. Crear un grupo de usuarios
</h3>
<div class=\"parrafo\" align=\"justify\">
Paquete: DBMS_RESOURCE_MANAGER<br />
Funcion: create_consumer_group.<br />
Parametros:
<div class=\"parrafo_lista_sub\">
	a) CONSUMER_GROUP: mombre del grupo.<br />
	b) COMMENT: comentario<br />
c)  CPU_MTH: Metodo utilizado para gestionar recursos de CPU entre sesiones dentro del mismo grupo<br />
<div class=\"parrafo_lista_sub\">
	c.1) ROUND_ROBIN (defecto): Se distribuye los recursos de forma equitativa. <br />
	c.2) RUN_TO_COMPLETION: Se da mas CPU a sesiones mas activas.
</div>
</div>
</div>
<div class=\"parrafo\" align=\"justify\">
Ejemplo:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&GT; exec DBMS_RESOURCE_MANAGER(
		'developers',
		'aplication developers');

</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Para validar si el grupo se ha creado correctamente podemos consultar la vista DBA_RSRC_CONSUMER_GROUPS.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&GT; SELECT 
consumer_group, cpu_method, comments 
FROM 
DBA_RESRC_CONSUMER_GROUPS
WHERE
	consumer_group='DEVELOPERS';
	
</p></pre></blockquote>
<div class=\"parrafo\" align=\"justify\">
Si quisiesemos modificar el CPU_MTH de un grupo podemos utilizar la funcion UPDATE_CONSUMER_GROUP.
</div>
<div class=\"parrafo\" align=\"justify\">
Ejemplo:
<div class=\"parrafo\" align=\"justify\">
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&GT; exec DBMS_RESOURCE_MANAGER.UPDATE_CONSUMER_GROUP(
	CONSUMER_GROUP => 'DEVELOPERS',
	NEW_CPU_MTH => 'RUN_TO_COMPLETION');

</p></pre></blockquote>

<h3>
2. Borrar Grupo de usuarios 
</h3>
<div class=\"parrafo\" align=\"justify\">
Ejemplo:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&GT; exec DBMS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP('DEVELOPERS');

</p></pre></blockquote>
<h3>
3. Asignar sesiones de usuario a grupos de usuarios
</h3>

<div class=\"parrafo\" align=\"justify\">
DRM permite asignar de forma automatica sesiones de usuarios a grupos de usuarios basandose en los atributos de la sesion. Este proceso se llama consumer group mapping.
</div>

<h3>
3.1 Crear Consumer Group Mappings
</h3>
<div class=\"parrafo\" align=\"justify\">
Paquete: DBMS_RESOURCE_MANAGER<br />
Funcion: set_consumer_group_mapping<br />
Parametros:
<div class=\"parrafo_lista_sub\">
	ATTRIBUTE<br />
	VALUE<br />
	CONSUMER_GROUP<br />
</div>
</div>
<div class=\"parrafo\" align=\"justify\">
El valor del ATTRIBUTE pueden tener los siguientes valores:
<div class=\"parrafo_lista_sub\">
&bull;	CLIENT_OS_USER<br />
&bull;	CLIENT_PROGRAM<br />
&bull;	CLIENT_MACHINE<br />
&bull;	MODULE_NAME: Fijamos en nombre del modulo que estamos ejecutando con DBMS_APPLICATION_INFO.SET_MODULE_NAME.<br />
&bull;	ORACLE_USER<br />
&bull;	SERVICE_NAME<br />
</div>
</div>
<div class=\"parrafo\" align=\"justify\">
Ejemplo:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&GT; exec DBMS_RESOURCE_MANAGER.set_consumer_mapping(
	ATTRIBUTE => CLIENT_OS_USER,
	VALUE	=> 'manager'
	CONSUMER_GROUP => 'DEVELOPERS');

</p></pre></blockquote>
<h3>
3.2 Priorizar mapeos
</h3>
<div class=\"parrafo\" align=\"justify\">
Podemos tener que una sesion de un grupo de usuarios este basada en diferentes atributos, para priorizar cada uno de los atributos utilizaremos la funcion: set_mapping_priority.
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&GT; exec dbms_resource_manager.set_mapping_priority(
	CLIENT_OS_USER	=>1,
	CLIENT_MACHINE	=> 2,
	ORACLE_USER		=> 3);

</p></pre></blockquote>
<h3>
3.3 Cambiar sesiones activas de grupo de usuarios
</h3>
<div class=\"parrafo\" align=\"justify\">
Las funciones que permiten hacer esto serian:
<div class=\"parrafo_lista_sub\">
SWITCH_CONSUMER_GROUP_FOR_SESS
SWITCH_CONSUMER_GROUP_FOR_USER
</div>
</div>
<div class=\"parrafo\" align=\"justify\">
Ejemplos:
</div>
<blockquote style=\"COLOR: #2e5348; FONT-SIZE: 12px; FONT-WEIGHT: bold FONT:Arial, Helvetica, sans-serif\">
<pre><p>SQL&GT;exec DBMS_RESOURCE_MANAGER.switch_consumer_group_for_sess(
	SESSION_ID	=> '56',
	SESSION_SERIAL	=> '106',
	CONSUMER_GROUP	=> 'LOW_GROUP');

SQL&GT; exec DBMS_RESOURCE_MANAGER.switch_consumer_group_for_user(
	USER	=> 'PPCS',
	CONSUMER_GROUP	=> 'LOW_GROUP');
</p></pre></blockquote>

";
	
echo"
	</div> 		 
    </div>
    <div class=\"pag_content_footer\">
    </div>
    <div class=\"pag_content_nav\">		
		<div class=\"pag_contenido_left\">
			<a class=\"cap_next\" href=\"ocp_main.php?cap=11&part=1\">	&lt; Anterior </a>
		 </div>
		<div class=\"pag_contenido_right\" align=\"right\">	
			<a  class=\"cap_next\" href=\"ocp_main.php?cap=11&part=3\">	Siguiente &gt;</a>
		 </div>
	</div>      
</div>
";


?>